package com.admin.education.services.Interfaces;

import com.admin.education.common.exceptions.ResourceNotFoundException;
import com.admin.education.dataTransferObject.PageResponse;
import com.admin.education.dataTransferObject.ServicesExcuteResult;
import com.admin.education.dataTransferObject.circles.CirclesTransfer;
import com.admin.education.dataTransferObject.circles.CommentsTransfer;
import com.admin.education.dataTransferObject.circles.Request.CreateCirclesRequest;
import com.admin.education.dataTransferObject.circles.Request.QueryCirclesRequest;
import com.admin.education.dataTransferObject.comments.Request.CreateCommentsRequest;

import javax.validation.Valid;
import java.util.List;

public interface ICirclesService  {
    ServicesExcuteResult createCircle(long userInformationId,@Valid CreateCirclesRequest createCirclesRequest);
    ServicesExcuteResult<PageResponse<CirclesTransfer>> queryCircles(@Valid QueryCirclesRequest circlesRequest);
    ServicesExcuteResult<CirclesTransfer> queryCircles(long criclesId) throws ResourceNotFoundException;
    ServicesExcuteResult createComments(long circlesId, long userInformationId, @Valid CreateCommentsRequest createCommentsRequest) throws ResourceNotFoundException;
    ServicesExcuteResult<List<CommentsTransfer>> queryComments(long articlesId);
    ServicesExcuteResult createAdmirer(long circlesId ,long userInformationid) throws ResourceNotFoundException;
}
